package com.hpjpw.ido.service.impl;

import java.util.List;

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hpjpw.ido.mapper.StudentMapper;
import com.hpjpw.ido.domain.Student;
import com.hpjpw.ido.service.IStudentService;

/**
 * 学生Service业务层处理
 * 
 * @author hpj
 * @date 2021-01-08
 */
@Service
public class StudentServiceImpl implements IStudentService 
{
    @Autowired
    private StudentMapper studentMapper;

    /**
     * 查询学生
     * 
     * @param id 学生ID
     * @return 学生
     */
    @Override
    public Student selectStudentById(Long id)
    {
        return studentMapper.selectStudentById(id);
    }

    /**
     * 查询学生列表
     * 
     * @param student 学生
     * @return 学生
     */
    @Override
    public List<Student> selectStudentList(Student student)
    {
        return studentMapper.selectStudentList(student);
    }

    /**
     * 通过地区ID查询学生列表
     *
     * @param areaId 地区ID
     * @return 学生集合
     */
    @Override
    public List<Student> selectStudentByAreaId(Long areaId) {
        return studentMapper.selectStudentByAreaId(areaId);
    }

    /**
     * 通过学号查询学生
     *
     * @param number 学号
     * @return 学生对象信息
     */
    @Override
    public Student selectStudentByNumber(String number) {
        return studentMapper.selectStudentByNumber(number);
    }

    /**
     * 通过用户ID查询学生
     *
     * @param userID 用户ID
     * @return 学生对象信息
     */
    @Override
    public Student selectStudentByUserID(Long userID) {
        return studentMapper.selectStudentByUserID(userID);
    }

    /**
     * 校验学号是否唯一
     *
     * @param student 老师信息
     * @return 结果
     */
    @Override
    public String checkNumberUnique(Student student) {
        Long Id = StringUtils.isNull(student.getId()) ? -1L : student.getId();
        Student info = studentMapper.checkNumberUnique(student.getNumber());
        if (StringUtils.isNotNull(info) && info.getId().longValue() != Id.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }

    /**
     * 新增学生
     * 
     * @param student 学生
     * @return 结果
     */
    @Override
    public int insertStudent(Student student)
    {
        return studentMapper.insertStudent(student);
    }

    /**
     * 修改学生
     * 
     * @param student 学生
     * @return 结果
     */
    @Override
    public int updateStudent(Student student)
    {
        return studentMapper.updateStudent(student);
    }

    /**
     * 批量删除学生
     * 
     * @param ids 需要删除的学生ID
     * @return 结果
     */
    @Override
    public int deleteStudentByIds(Long[] ids)
    {
        return studentMapper.deleteStudentByIds(ids);
    }

    /**
     * 删除学生信息
     * 
     * @param id 学生ID
     * @return 结果
     */
    @Override
    public int deleteStudentById(Long id)
    {
        return studentMapper.deleteStudentById(id);
    }
}
